1 /* 2 * Copyright (C) 2011 The Guava Authors 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except 5 * in compliance with the License. You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software distributed under the License 10 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express 11 * or implied. See the License for the specific language governing permissions and limitations 12 * under the License. 13 */ 14 15 package com.google.common.cache; 16 17 import com.google.common.annotations.Beta; 18 import com.google.common.annotations.GwtCompatible; 19 20 /** 21 * Calculates the weights of cache entries. 22 * 23 * @author Charles Fry 24 * @since 11.0 25 */ 26 @Beta 27 @GwtCompatible 28 public interface Weigher<K, V> { 29 30 /** 31 * Returns the weight of a cache entry. There is no unit for entry weights; rather they are simply 32 * relative to each other. 33 * 34 * @return the weight of the entry; must be non-negative 35 */ 36 int weigh(K key, V value); 37 }